# Makefile du projet peteux_3

# Variables

EXEC = peteux_3.out tests.out
CHEMIN_SRC = sources/
CHEMIN_OBJ = objets/
OBJS = $(CHEMIN_OBJ)actions.o \
       $(CHEMIN_OBJ)affichage.o \
       $(CHEMIN_OBJ)base_donnees.o \
       $(CHEMIN_OBJ)carte_zone.o \
       $(CHEMIN_OBJ)chronometre.o \
       $(CHEMIN_OBJ)collisions.o \
       $(CHEMIN_OBJ)debut_et_fin.o \
       $(CHEMIN_OBJ)dependances.o \
       $(CHEMIN_OBJ)deplacement.o \
       $(CHEMIN_OBJ)descriptions.o \
       $(CHEMIN_OBJ)etat_bataille.o \
       $(CHEMIN_OBJ)etat_exploration.o \
       $(CHEMIN_OBJ)etat_partie.o \
       $(CHEMIN_OBJ)hasard.o \
       $(CHEMIN_OBJ)inventaire.o \
       $(CHEMIN_OBJ)jeu.o \
       $(CHEMIN_OBJ)manipulation_cases.o \
       $(CHEMIN_OBJ)manipulation_ennemis.o \
       $(CHEMIN_OBJ)menus.o \
       $(CHEMIN_OBJ)parsing.o \
       $(CHEMIN_OBJ)projectiles.o \
       $(CHEMIN_OBJ)resume_saisie.o \
       $(CHEMIN_OBJ)saisie_clavier_ncurses.o \
       $(CHEMIN_OBJ)saisie_clavier_sdl.o \
       $(CHEMIN_OBJ)statistiques.o \
       $(CHEMIN_OBJ)tab_dyn_id.o \
       $(CHEMIN_OBJ)tab_regions_accessibles.o \
       $(CHEMIN_OBJ)tests_regression.o

# Pour mettre la liste a jour, se deplacer dans le dossier des sources
# et utiliser la commande :
# ls -1 *.c | sed -r -e 's/^/       \$(CHEMIN_OBJ)/' -e 's/\.c/\.o \\/'
# puis copiez-collez sa sortie (sauf le dernier \) et enlever les fichiers main

COMPIL = gcc
DEBUGGER = -ggdb
LIBS = -lSDL -lncurses -lSDL_ttf
OPTNS = -Wall -ansi -pedantic $(DEBUGGER) $(LIBS)
DOCU = doxygen Doxyfile

# Regles principales

all: $(EXEC)

veryall: re docu

Debug: all

Release: veryall

# Regle generale pour fichiers objets

$(CHEMIN_OBJ)%.o: $(CHEMIN_SRC)%.c
	$(COMPIL) -c $(OPTNS) -o $@ $<

# Regles pour executables

peteux_3.out: $(OBJS) $(CHEMIN_OBJ)main_peteux_3.o
	@echo " "
	@echo "===== Creation de $@ ====="
	@echo " "
	$(COMPIL) $(OPTNS) -o $@ $^
	@echo " "
	@echo "===== $@ : Termine ====="
	@echo " "

tests.out: $(OBJS) $(CHEMIN_OBJ)main_tests.o
	@echo " "
	@echo "===== Creation de $@ ====="
	@echo " "
	$(COMPIL) $(OPTNS) -o $@ $^
	@echo " "
	@echo "===== $@ : Termine ====="
	@echo " "

# Autres

docu:
	@echo " "
	@echo "===== Documentation ====="
	@echo " "
	$(DOCU)
	@echo " "
	@echo "===== Documentation : Termine ====="
	@echo " "

clean:
	@echo " "
	@echo "===== Suppression des .o ====="
	@echo " "
	/bin/rm -f $(CHEMIN_OBJ)*.o
	@echo " "
	@echo "===== Suppression des .o : Termine ====="
	@echo " "

veryclean:
	@echo " "
	@echo "===== Suppression des .o/.out ====="
	@echo " "
	/bin/rm -f $(CHEMIN_OBJ)*.o $(EXEC)
	@echo " "
	@echo "===== Suppression des .o/.out : Termine ====="
	@echo " "

re: veryclean all










